<?php
namespace app\mamx_forum_admin\controller;
use think\facade\Db;

class Deal extends \app\BaseController
{
	// 检查 sid 合法性
	public function checkSID($sid){
	    $re = Db::name('section')
	        ->field('s_name')
	        ->where('s_id',$sid)
	        ->find();
	    if($re == null){
	        // 不合法
	        $this->error('你访问的页面不存在','admin/alogin');
	    }else{
	        return($re['s_name']);
	    }
	}
	// 检查 mid 合法性
	public function checkMID($mid){
		$re = Db::name('mes')
		    ->where('m_id',$mid)
		    ->find();
		if($re == null){
		    // 不合法
		    $this->error('你访问的页面不存在');
		}
	}
	// 2类方法，渲染帖子页面
	public function mesDeal($sid=0)
	{
		$this->checkadmin();
		// 查询版块
		$sec = $this->showSec();
		if (input('search') ==''){
			// 没有搜索没有sid的情况下
			if($sid==0){
				# 加载全部帖子
				$thisSec = '全部';
			        $mes = Db::name('mes')
						->select();
			}else{
				// 检查帖子合法性
				$thisSec=$this->checkSId($sid);
				// 没有搜索有sid
				$mes = Db::name('mes')
				->where('m_sid',$sid)
				->select();
			}
		}else{
			if($sid==0){
				// 有搜索没有sid的情况
				$thisSec = '全部';
				$search=input('search');
				// $sid=2;
				$mes = Db::name('mes')
					->where('m_title','like','%'.$search.'%')
					->select();
			}else{
				// 检查帖子合法性
				$thisSec=$this->checkSId($sid);
				// 有搜索有sid的情况下
				$search= input('search');
				$mes = Db::name('mes')
					->where('m_title','like','%'.$search.'%')
					->where('m_sid',input('sid'))
					->select();
			}
		}
		return view('',['sec'=>$sec,'mes'=>$mes,'sid'=>input('sid'),'thisSec'=>$thisSec]);
	}
	// 2类方法，渲染详细页
	public function aDetail($mid=0){
		$this->checkadmin();
		// 检查 mid 合法性
		$this->checkMID(input('mid'));
		// 帖子信息查询
		$mes = Db::view('mes','m_title,m_content,m_create,m_unick,m_id,mbin')
			->view('user','u_img','mes.m_unick=user.u_nick')
			->view('section','s_name','mes.m_sid = section.s_id')
			->where('m_id',$mid)
			->find();
		// 帖子回复信息查询
		$res = Db::view('res','r_id,r_content,r_createat,r_unick,r_mid,rbin')
			->view('user','u_img','user.u_nick=res.r_unick')
			->where('r_mid',$mid)
			->select();
		return view('',['mes'=>$mes,'res'=>$res]);
	}
	// 删除帖子
	public function mesdel(){
		// 判断是否有回复信息
			$res = Db::name('res')
				->where('r_mid',input('mid'))
				->select();
			$countres = count($res);
			if($countres==0){
				// 无回复
				$mesdel=Db::name('mes')
				->where('m_id',input('mid'))
				->delete();
			$this->success('删除帖子成功','deal/mesdeal');	
			}else{
				$mesdel=Db::name('mes')
						->where('m_id',input('mid'))
						->delete();
				$resdel = Db::name('res')
						->where('r_mid',input('mid'))
						->delete();
			$this->success('删除帖子成功，删除回复成功','deal/mesdeal');
			}
		}
	// 删除回复信息
	public function resdel(){
		$this->checkadmin();
		$rid=input('rid');
		$resdel=Db::name('res')
				->where('r_id',$rid)
				->delete();
		if($resdel==1){
			$this->success("删除回复成功");
		}else{
			$this->error("删除回复失败");
		}
	}
	// 渲染回收站页面
	 public function binDeal(){   
	    return view();
	  }
	// 渲染用户管理页面
	public function userDeal(){
		$this->checkadmin();
		// 搜索
		$search = input('search');
		if(input('search') == ''){
			$user = Db::name('user')
			->select();
			return view('',['user'=>$user,'search'=>$search]);
		}else{
			$user = Db::name('user')
				->where('u_nick','like','%'.$search.'%')
				->select();
				return view('',['user' => $user]);
		}
	}
	// 用户权限管理
	public function userpower(){
		$this->checkadmin();
		$user = Db::name('user')
			->where('u_nick',input('unick'))
			->select();
		return view('',['user'=>$user]);
	}
	// I组 修改权限
	public function moDiPower(){
		$this->checkadmin();
		$user = Db::name('user')
			->where('u_nick',input('unick'))
			->select();
		$uPower=$_POST['logsend'];
		// dump($uPower);
		if($uPower=='正常登录、正常发言'){
			$re = Db::name('user')
			->where('u_nick',input('unick'))
			->update(['u_check'=>$uPower,'ucheckcolor'=>'black']);
			if($re){
				$this->success('用户权限更改为'.$uPower,'deal/userdeal');
			}
		}else{
			$re = Db::name('user')
			->where('u_nick',input('unick'))
			->update(['u_check'=>$uPower,'ucheckcolor'=>'red']);
			if($re){
				$this->error('用户权限更改为'.$uPower,'deal/userdeal');
			}
		}
		
	}
	// 渲染版块管理页面
	public function secDeal(){
		// 检查登录状态
		$this->checkadmin();
		// 查询版块
		$sec=$this->showSec();
		// 搜索
		$search = input('search');
		if(input('search') == ''){
			// 没有搜索
			$sec = Db::name('section')
				->select();
			return view('',['sec'=>$sec,'search'=>$search]);
		}else{
			$sec =Db::name('section')
				->where('s_name','like','%'.$search.'%')
				->select();
			return view('',['sec'=>$sec,'search'=>$search]);
		}
		}
	//渲染添加板块页面
	public function secAdd(){
		$this->checkadmin();
		return view();
	}
	// 执行添加版块
	public function secDoAdd(){
		// 检查登录状态
		$this->checkadmin();
		$add = [
			's_name' =>input('sname'),
			's_remark' => input('remarks')
		];
		$secAdd = Db::connect("mamx_admin")
				->name('section')
				->insert($add);
		if($secAdd){
			$this->success($add['s_name'].'版块添加成功',url('deal/secdeal'));
		}else{
			$this->error($add['s_name'].'版块添加失败，请重试！');
		}
	}
	// I组 二类方法 渲染修改板块页面
	public function secInfo($sid){
		// 检查登录状态
		$this->checkadmin();
		$sec = Db::name('section')
			->where('s_id','=',$sid)
			->find();
		return view('',['sec'=>$sec]);
	}
	// I组 一类方法 执行版块修改
	public function secinfomodi($sid){
		// 检查登录状态
		$this->checkadmin();
		// 提取参数
		$sName = input('sname');
		$sRemarks = input('remarks');
		$secModi = Db::name('section')
				->where('s_id',input('sid'))
				->update(['s_name'=>$sName,'s_remark'=>$sRemarks]);
		if($secModi==1){
			$this->success('版块修改成功','deal/secdeal');
		}else{
			$this->error('版块修改失败,请重试！！');
		}
	}
	// I组 一类方法 执行删版块
	public function secDel($sid=-1,$mid=-1){
		// 查询帖子
		$mes=Db::view('mes','m_id')
			->view('section','s_id','section.s_id = mes.m_sid')
			->where('section.s_id',$sid)
			->select();
		// 查询回复
		$res = Db::view('res','r_id')
		    ->view('mes','m_id','mes.m_id = res.r_mid')
		    ->where('res.r_mid',$mid)
		    ->select();
		// 查询帖子的个数
		$count = $mes->count();
		// 回复帖子个数
		$countres=$res->count();
		// 创建数组储存帖子
		$result=[];
		// 创建数组储存回复内容
		$resultres=[];
		// 打印
		// echo count ($result);
		// echo $mes;
		if($count==0){
			// 无帖子无回复
			echo "无帖子无回复，直接删除";
		}else{
			// 有帖子无回复
			for ($i=0;$i<$count;$i++){
				dump ($mes[$i]);
				$result[]=$mes[$i]['m_id'];
			    dump($result);
			$delmes=Db::connect('mamx_admin')
					->name('mes')
					->where('m_id',$result[$i])
					->delete();
				if($delmes == 1){
					echo "删除帖子成功！";
				}else{
					echo "删除帖子失败！";
				}
			}
			// 有帖子有回复
			for ($i=0;$i<$countres;$i++){
				dump ($res[$i]);
				$resultres[]=$res[$i]['r_id'];
				dump($resultres);
				$countres = count($resultres);
				if($countres!=0){
					echo "有帖有回复";
					$res['m_id']=array('in',$result);
					$deleteres=Db::connect('mamx_admin')
								->name('res')
								->where('r_mid',array('in',$result))
								->delete();
					    if($delres==1){
					        echo "删除帖子回复成功！";
					        }else{
					        echo "删除帖子回复失败！";
							}
				}	
			}
		}
		$secdel=Db::name('section')
					->where('s_id',input('sid'))
					->delete();
			if($secdel==1){
				$this->success('删除版块成功',url("deal/secdeal"),['sid'=>input('sid')]);
			}else{
				$this->error("删除版块失败！！");
			}
	}
}
